Usuários
O escopo de dados de usuário pode ser acessado pelo objeto user em payloads Javascript.
Alteração/inserção de dados de usuário
Os dados de usuário podem ser alterados usando o método setUser em payloads Javascript.
A função recebe como parâmetros o nome do dado a ser alterado e o valor do mesmo.
/* 
Primeiro Parâmetro: Campo a ser alterado 
Segundo Parâmetro: Valor do Campo
*/
setUser("nickname", "Fintalk Demo User");
Também é possível configurar valores sem o uso da função setUser:
user.nickname = "Fintalk Demo User";
getPhone
Recupera o número de telefone do WhatsApp do usuário.
Retorna o telefone no formato +55DDDNUMERO se o usuário estiver utilizando o WhatsApp ou false caso não.
let phone = getPhone();
if (phone) {
    //Número OK!
} else {
    //Não está utilizando o WhatsApp
}
Recuperação de dados de usuário
Os dados de usuário estão acessíveis no objeto user:
const nickname = user.nickname;
Também podem ser acessados em um Simple Text Response:
Olá, `${user.nickname}`;
Campos do objeto de Usuário
| Campo | Tipo | Exemplo | O que é | 
|---|---|---|---|
| id | ObjectID | - | ID único do usuário | 
| name | String | Fintalk Doc Sample | Nome completo | 
| nickname | String | Fintalk | Apelido do usuário | 
| String | [email protected] | ||
| cpf | String | 02356672220 | CPF | 
| phoneNumber | String | +551198555555 | Número de Telefone | 
| birthDate | Date | new Date(data) | Data de Nascimento | 
| address | Object | Endereço | Endereço | 
| gender | Number | 0 - F / 1 - M | Sexo | 
| appClient | String | "Telegram" | Meio de contato atual | 
| optin | Boolean | true/false | Opt-in | 
| queryInput | String | Olá, Quero testar! | Mensagem enviada | 
| cooldown | Date | new Date().setMinutes((var).getMinutes()+1) | Tempo para "ignorar" | 
| isAudioOutputEnabled | Boolean | true | Envia todas mensagens por TTS | 
O campo id NÃO deve ser manipulado
Endereço
O objeto address conta com múltiplos campos para facilitar seu uso:
| Campo | Tipo | Exemplo | O que é | 
|---|---|---|---|
| street | String | Avenida das Nações Unidas | Rua/Avenida | 
| number | String | 80 - AP 102 | Número e Complemento | 
| neighborhood | String | Brooklin | Bairro | 
| city | String | São Paulo | Cidade | 
| state | String | SP | Estado | 
| country | String | Brasil | País | 
| zipCode | String | 04581040 | CEP | 
| location.lat | Number | -40.5727 | Latitude | 
| location.long | Number | -40.5727 | Longitude | 
Os dados de usuário estão acessíveis no objeto user.address:
const street = user.address.street;
Também podem ser acessados em um Simple Text Response:
Vi que sua rua é `${user.address.street}`;
Para configurar os valores é possível usar a função setUser() ou simplesmente usar a sintaxe padrão do JavaScript:
/* 
Primeiro Parâmetro: Campo a ser alterado 
Segundo Parâmetro: Valor do Campo
*/
setUser("address.street", "Avenida das Nações Unidas");
user.address.street = "Avenida das Nações Unidas";
Para facilitar o uso e garantir dados consistentes, utilize as funções de validação (getCities, isValidCEP ou faça o parse da localização enviada pelo usuário)